home *** CD-ROM | disk | FTP | other *** search
/ Nibble Magazine / nib12.dsk / STEP DISASSEMBLER.bas < prev    next >
BASIC Source File  |  2023-02-26  |  1KB  |  44 lines

  1. 10  REM  **********************
  2. 11  REM  * STEP DISASSEMBLER  *
  3. 12  REM  * BY LOU PARADA      *
  4. 13  REM  * COPYRIGHT (C) 1982 *
  5. 14  REM  * BY MICRO-SPARC INC *
  6. 15  REM  * LINCOLN, MA. 01773 *
  7. 16  REM  **********************
  8. 20  HOME : POKE 35,21: VTAB 8
  9. 30  INPUT "ENTER BEGINNING ADDRESS IN HEX =$";AD$
  10. 40 LG =  LEN(AD$)
  11. 50  IF LG = 0  OR LG >4 GOTO 180
  12. 60  DIM DI$(4): READ DI$(1),DI$(2),DI$(3),DI$(4): DATA  0,0,0,0
  13. 70 X = 4:Y = LG
  14. 80  FOR I = 1 TO LG
  15. 90 DI$(X) =  MID$ (AD$,Y,1)
  16. 100 X = X -1:Y = Y -1
  17. 110  NEXT I
  18. 120  REM  EDIT FOR VALID RANGE - HEX 0 THRU F
  19. 130  FOR I = 1 TO 4
  20. 140 V =  ASC(DI$(I))
  21. 150  IF V <48  OR V >70 GOTO 180
  22. 160  IF V >57  AND V <65 GOTO 180
  23. 170  NEXT : GOTO 200
  24. 180  PRINT "ERROR IN HEX ADDRESS =$";AD$: PRINT "HIT ANY KEY TO TRY AGAIN": GET A$: RUN 
  25. 190  REM  CONVERT HEX ADDR TO DECIMAL
  26. 200  FOR I = 4 TO 1  STEP  -1
  27. 210 V =  ASC(DI$(I))
  28. 220  IF V >64  THEN V = V -7:
  29. 230 V = V -48
  30. 240 DE = DE +(V *(16 ^P)):P = P +1: NEXT 
  31. 250  PRINT : PRINT  TAB( 19);"DECIMAL ADDR=";DE
  32. 260 HI =  INT(DE/256)
  33. 270 LO = DE -(HI *256)
  34. 280  REM  LOAD MACHINE LANGUAGE
  35. 290 LA = 36864: REM  LOAD ADDR AT $9000
  36. 300 LB = 06: REM  LOW-ORDER ADDR
  37. 310 HB = 07: REM  HI-ORDER ADDR
  38. 320  POKE 0 +LB,LO: POKE 0 +HB,HI
  39. 330  FOR I = LA TO LA +25: READ IN: POKE 0 +I,IN: NEXT 
  40. 340  DATA  165,6,133,58,165,7,133,59,169,1,32,99,254,173,0,192,16,251,141,16,192,201,155,208,239,96
  41. 350  VTAB 23
  42. 360  PRINT "HIT ANY KEY TO STEP  OR  (ESC) TO QUIT": VTAB 21
  43. 370  CALL LA
  44. 380  POKE 35,23: HOME : END